package com.triadsystems.cashweb.modelo.negocio.servicos.impl;

import javax.inject.Named;

import com.icon.infra.modelo.persistencia.dao.impl.DAOHibernateTemplate;
import com.triadsystems.cashweb.modelo.negocio.servicos.IPagamentoServico;
import com.triadsystems.cashweb.modelo.persistencia.entidades.Pagamento;

@SuppressWarnings("unchecked")
@Named
public class PagamentoServico extends DAOHibernateTemplate<Pagamento> implements
		IPagamentoServico {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
}
//	
//	@SuppressWarnings("rawtypes")
//	public Collection getMovimentoDiarioPorArrecadador(Caixa caixa) {
//		long caixaId = caixa.getEntityId();
//		String stringHQL ="from ArrecadacaoCaixa c" +
//				" where c.id.caixa_id = :caixa_id";
//		
//		String[] params = { "caixa_id" };
//		Object[] valores = { caixaId };
//		
//		Collection recuperarObjetosPorHQL = recuperarObjetosPorHQL(stringHQL, params, valores);
//		
//		return recuperarObjetosPorHQL;
//	}
//
//	@SuppressWarnings("unchecked")
//	@Override
//	public Collection<ArrecadacaoCaixa> getMovimentoDiarioPorData(Date dataInicio,
//			Date dataFim, Usuario usuario) {
//		Collection <ArrecadacaoCaixa> resultado = null;
//
//		String stringHQL = "from ArrecadacaoCaixa c "
//			+ " where c.id.usuario_id = :usuario_corrente and c.data >= :dataInicio and c.data <= :dataFim "
//			+ " order by c.data";
//		
//		String[] params = {"dataInicio", "dataFim", "usuario_corrente"};
//		Object[] valores = {dataInicio, dataFim, usuario.getEntityId()};
//		
//		resultado = recuperarObjetosPorHQL(stringHQL, params, valores);
//		
//		return resultado;
//	}
//}


/*List<Arrecadacao> listaArrecadacao = new ArrayList<Arrecadacao>();
		StringBuilder builder = new StringBuilder();
		builder.append(" select sum(valorPagamento) as valor,tipoPagamento,count(*) as quantidade");
		builder.append(" FROM (");
		builder.append(" 	select distinct tp.id, p.valorPagamento,p.tipoPagamento");
		builder.append("	from TransacaoPagamento tp");
		builder.append("	where tp.movimentacao.caixa = :caixa");
		builder.append("	) pag");
		builder.append(" group by tipoPagamento");
		
		String[] params = { "caixa"};
		Object[] valores = { caixa };
		
		try {
			listaArrecadacao = (List<Arrecadacao>)recuperarObjetoGenericoPorHQL(builder.toString(), params, valores);
		} catch (ObjetoNaoEncontradoException e) {
			return null;
		}
		
		return listaArrecadacao;*/